/*
 * ConexaoAbstrata.h
 *
 *  Created on: 14-Apr-09
 *      Author: Adailton de Jesus Cerqueira Junior  <adailton.junior@gmail.com>
 */

#ifndef CONEXAOABSTRATA_H_
#define CONEXAOABSTRATA_H_

#include <string>

class ConexaoAbstrata
{
public:

    virtual ~ConexaoAbstrata() {};
	virtual  std::string receberMensagem() = 0;
	virtual  std::string receberMensagem(std::size_t size) = 0;
	virtual void enviarMensagem(std::string mensagem) = 0;
	virtual bool isConectado() = 0;
};

inline ConexaoAbstrata&
operator << (ConexaoAbstrata& c, std::string& s)
{
    c.enviarMensagem(s);
    return c;
}

inline ConexaoAbstrata&
operator >> (ConexaoAbstrata& c, std::string& s)
{
    s = c.receberMensagem();
    return c;
}


#endif /* CONEXAOABSTRATA_H_ */
